#######################1
# import datetime
# from datetime import *
# import time
#
# n = int(input("请输入一个整数："))
# day = date.today()
# now = datetime.now()
# print(("当前日期：{}").format(day))
# result = now-timedelta(days=n)
# print(f"{n}天前的日期为{result.strftime('%Y-%m-%d')}")

##############            2

# import os
#
# path = r'D:/PycharmProjects/pythonProject1'
# for i in os.listdir(path):
#     print(i)

################         3

# lst1 = [90, 89, 88, 77, 66, 55, 44, 33, 22, 11, 66, 88, 77]
# lst2 = set(lst1)
# lst3 = list(lst2)
# lst3.sort()
# print(lst3)

##############         4
# 在函数内部定义或修改变量时，使用global声明变量为全局变量

#############          5
# 定义一个全局变量管理模块

############           6
# 数字类型包括整数，浮点数，复数
# 字符串，布尔类型以及常量
###########            7

# import random
# import numpy as np
# result1 = random.randint(0, 10)
# result2 = np.random.randn(1) #生成5个随机小数
# result3 = random.random()    #不能传递参数
# print("正整数: ", result1)
# print("5个随机小数:  ", result2)
# print("0-1随机小数:  ", result3)

#############          8
# 可变数据类型：list, dic, set
# 不可变数据类型：Number, String, Tuple
#############          9
# a=a+1，表示一个新的对象，新的对象名字还是a，但是指向的内存地址已经变了
# a+=1，对于有些对象的操作是表示原来的对象，对有些对象的操作是生成了一个新对象

############           10
# pep8
# 1. 每一级缩进为4个空格
# 2. 续行应该与其包裹元素对齐，要么使用圆括号、方括号和花括号内的隐式行连接来垂直对齐，要么使用挂行缩进对齐3。
# 当使用挂行缩进时，应该考虑到第一行不应该有参数，以及使用缩进以区分自己是续行。
# 3. 所有行都应限制在79字符数以内
# 4. 没有结构化限制的大块文本，每行的最大字符数限制在72
# 5. 顶层函数和类的定义，前后用两个空行隔开。

############          11

# str1 = "asbfajnfusfneljjifbjkunjkfhd"
# for i in str1:
#     a = str1.count(i)
#     if a == 2:
#         print(i)
#         break

###########           12
# 深拷贝与浅拷贝,只会发生在容器类型里面，包含其他可变容器类型的情况
# 浅拷贝,可能会造成修改拷贝之后的值，会改变原来的值
# 深拷贝不会发生上述情况

##########            13
# 引用计数为主，分代回收、标记清除为辅的垃圾回收方式
# 以及对小整型进行缓存和简单字符串驻留的内存池机制。

############          14

# def bubblesort(lst):
#     n = len(lst)
#     for i in range(n):
#         for j in range(0,n-i-1):
#             if lst[j] > lst[j+1]:
#                 lst[j], lst[j+1] = lst[j+1], lst[j]
#     return lst
#
#
def quicksort(arr):
    if len(arr) < 2:
        return arr
    mid = arr[len(arr) // 2]
    left, right = [], []
    arr.remove(mid)
    for item in arr:
        if item > mid:
            right.append(item)
        else:
            left.append(item)
    return quicksort(left) + [mid] + quicksort(right)


lst = [1, 132, 2, 32, 222, 113, 1312, 141, 1312]
# print(bubblesort(lst))
print(quicksort(lst))

##########                15

def reverse(str):
    a = list(str)
    a.reverse()
    if list(str) == a:
        print("是回文结构")
    else:
        print("不是回文结构")


# str1 = input("请输入你的字符串：")
# reverse(str1)
